import request from '/@/utils/request';

/**
 * 根据分页查询参数获取列表数据。
 * @param label
 * @param {Object} [query] - 查询参数。
 * @param obj
 * @returns {Promise} 请求的 Promise 分页对象。
 */
export function fetchList(obj?: Object) {
	return request({
		url: '/admin/common/' + obj.label + '/page',
		method: 'post',
		params: {
			current:obj.current,
			size:obj.size,
			descs:obj.descs,
			ascs:obj.ascs
		},
		data: obj.data,
	});
}


/**
 * 根据label查询字段列表。
 * @param label
 * @returns {Promise} 请求的 Promise 字段对象。
 */
export function getFieldList(label: string) {
	return request({
		url: '/admin/common/' + label + '/field',
		method: 'get'
	});
}




/**
 * 添加一个新对象。
 * @param {Object} [obj] - 要添加的对象。
 * @param {Object} [label] - 要添加的对象。
 * @returns {Promise} 请求的 Promise 对象 （true/false）。
 */
export function addObj(label:string,obj?: Object) {
	return request({
		url: '/admin/common/'+label,
		method: 'post',
		data: obj,
	});
}


/**
 * 根据查询参数获取对象详情。
 * @param {Object} [label] - 查询参数。
 * @param {Object} [id] - 查询参数。
 * @returns {Promise} 请求的 Promise 对象数组。
 */
export function getObj(label: string,id:string) {
	return request({
		url: '/admin/common/'+label+'/details/'+id,
		method: 'get',
	});
}



/**
 * 根据实体label和数据id发起流程
 * @param {Object} [label] - 查询参数。
 * @param {Object} [id] - 查询参数。
 * @returns {Promise} 请求的 Promise 对象数组。
 */
export function startFlow(label: string,id:string) {
	return request({
		url: '/admin/common/'+label+'/startFlow/'+id,
		method: 'post',
	});
}


/**
 * 更新一个已存在的对象。
 * @param {Object} [obj] - 要更新的对象。
 * @param {Object} [label] - 要更新的对象。
 * @returns {Promise} 请求的 Promise 对象。
 */
export function putObj(label: string,obj?: Object) {
	return request({
		url: '/admin/common/'+label,
		method: 'put',
		data: obj,
	});
}






/**
 * 根据 ID 删除对象。
 * @param {Object} [ids] - 要删除的对象 ID。
 * @param {Object} label - 要删除的对象 label。
 * @returns {Promise} 请求的 Promise 对象。
 */
export function delObjs(label: string,ids?: Object) {
	return request({
		url: '/admin/common/'+label,
		method: 'delete',
		data: ids,
	});
}